package com.dofast.module.system.controller.admin.expresselectronicsheet.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import javax.validation.constraints.*;

/**
 * 电子面单 Base VO，提供给添加、修改、详细的子 VO 使用
 * 如果子 VO 存在差异的字段，请不要添加到这里，影响 Swagger 文档生成
 */
@Data
public class ExpressElectronicsheetBaseVO {

    @Schema(description = "模板名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四")
    @NotNull(message = "模板名称不能为空")
    private String templateName;

    @Schema(description = "物流公司id", requiredMode = Schema.RequiredMode.REQUIRED, example = "27237")
    @NotNull(message = "物流公司id不能为空")
    private Integer companyId;

    @Schema(description = "物流公司名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
    @NotNull(message = "物流公司名称不能为空")
    private String companyName;

    @Schema(description = "编码", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "编码不能为空")
    private String expressNo;

    @Schema(description = "CustomerName", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
    @NotNull(message = "CustomerName不能为空")
    private String customerName;

    @Schema(description = "CustomerPwd", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "CustomerPwd不能为空")
    private String customerPwd;

    @Schema(description = "SendSite", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "SendSite不能为空")
    private String sendSite;

    @Schema(description = "SendStaff", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "SendStaff不能为空")
    private String sendStaff;

    @Schema(description = "MonthCode", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "MonthCode不能为空")
    private String monthCode;

    @Schema(description = "邮费支付方式（1现付 2到付 3月结）", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "邮费支付方式（1现付 2到付 3月结）不能为空")
    private Byte postagePaymentMethod;

    @Schema(description = "快递员上门揽件（0否 1是）", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "快递员上门揽件（0否 1是）不能为空")
    private Byte isNotice;

    @Schema(description = "状态（0正常 -1不使用）", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @NotNull(message = "状态（0正常 -1不使用）不能为空")
    private Byte status;

    @Schema(description = "是否默认（0否 1是）", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "是否默认（0否 1是）不能为空")
    private Byte isDefault;

    @Schema(description = "模板风格", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "模板风格不能为空")
    private Integer printStyle;

}
